Knetfile.c(300): warning C4244: '=' : conversion from '_int64' to 'int', possible loss of data Knetfile.c(271): warning C4244: '=' : conversion from 'SOCKET' to 'int', possible loss of data Knetfile.c(264): warning C4244: '=' : conversion from 'SOCKET' to 'int', possible loss of data Knetfile.c(236): warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data Knetfile.c(189): error C2036: 'void *' : unknown size However, this is clearly not working, as I now get a whole series of errors and warnings: So, I figured I'd roll the dice with the drop-in replacement linked to above. My first step was to remove the unistd.h include, because it is not available on windows.įatal error C1083: Cannot open include file: 'unistd.h': No such file or directory I am attempting to massage knetfile.c so that it can be compiled for windows64. The following code example illustrates the steps that are listed in the preceding Remarks section.First, by "windows unistd.h", I mean the example located here: "is there a replacement for unistd.h for windows? For example, a driver might be unloaded between a call to AuxKlibQueryModuleInformation that obtains a pointer to the driver image and a call to AuxKlibGetImageExportDirectory that uses this pointer.ĭrivers must call AuxKlibInitialize before calling AuxKlibQueryModuleInformation. The caller should assume that the driver can be unloaded at any time unless the caller can guarantee otherwise. This pointer remains valid only while the driver remains loaded. Each ImageBase value is a pointer to the base of a loaded driver image. If a call to AuxKlibQueryModuleInformation succeeds, the routine writes an ImageBase value to each element in the QueryInfo array. As a result, the second call to AuxKlibQueryModuleInformation might return STATUS_BUFFER_TOO_SMALL even if the driver allocates a buffer that is based on the size that was obtained from the first call. The number of loaded modules can change between the first and second calls to AuxKlibQueryModuleInformation. After AuxKlibQueryModuleInformation returns, the buffer contains an array of module information. This time, the QueryInfo pointer must contain the address of the allocated buffer. After AuxKlibQueryModuleInformation returns, the location that the BufferSize parameter points to will contain the number of bytes that the driver will have to allocate for the array.Ĭall a memory allocation routine, such as ExAllocatePoolWithTag, to allocate a buffer for the array.Ĭall AuxKlibQueryModuleInformation again. To obtain information about the operating system's loaded image modules, a driver must:Ĭall AuxKlibQueryModuleInformation with a NULL QueryInfo pointer. The routine might return other NTSTATUS values. AuxKlibQueryModuleInformation returns STATUS_BUFFER_TOO_SMALL if the QueryInfo pointer is not NULL and the driver-supplied BufferSize value is too small. Return valueĪuxKlibQueryModuleInformation returns STATUS_SUCCESS if the operation succeeds. If this pointer is NULL, AuxKlibQueryModuleInformation writes the required buffer size to the location that BufferSize points to. This value must be sizeof( AUX_MODULE_BASIC_INFO) or sizeof( AUX_MODULE_EXTENDED_INFO).Ī pointer to an array of AUX_MODULE_BASIC_INFO or AUX_MODULE_EXTENDED_INFO structures that receives information about loaded image modules. The size, in bytes, of each element of the array that QueryInfo points to. If QueryInfo is not NULL, the location must contain the specified number of bytes. If QueryInfo is NULL, the location receives the number of bytes that the driver must allocate for the array that receives the retrieved information. Syntax NTSTATUS AuxKlibQueryModuleInformation(Ī pointer to a location that contains or receives a buffer size, in bytes. The AuxKlibQueryModuleInformation routine retrieves information about the image modules that the operating system has loaded.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |