[pso] [Tema 3][Windows] Bsod aleator la IoGetDeviceObjectPointer
Vladimir-Andrei Olteanu
kooliva at gmail.com
Sat May 8 00:46:39 EEST 2010
Salut!
Modulul meu imi da Bsod uneori cand apelez IoGetDeviceObjectPointer
(ceea ce ma duce cu gandul la parametri neinitializati).
Programul arata astfel:
struct SSR_DATA
{
[...]
PFILE_OBJECT Disk1FileObject;
PDEVICE_OBJECT Disk1DeviceObject;
PFILE_OBJECT Disk2FileObject;
PDEVICE_OBJECT Disk2DeviceObject;
};
[...]
ret = IoCreateDevice(driver, sizeof(struct SSR_DATA) ...)
[...]
data = (struct SSR_DATA *)device->DeviceExtension;
ret = IoGetDeviceObjectPointer(&disk1UnicodeName, FILE_ALL_ACCESS,
&data->Disk1FileObject, &data->Disk1DeviceObject);
[...]
Primul parametru l-am initializat cu
RtlInitUnicodeString(&disk1UnicodeName, PHYSICAL_DISK1_DEVICE_NAME) si
m-am asigurat ca disk1UnicodeName.Buffer nu e NULL.
Am verificat codurile de eroare, si IoCreateDevice se termina cu
succes, deci variabila data este alocata.
Bsod-ul poate aparea de la oricare dintre cele doua apeluri ale functiei
IoGetDeviceObjectPointer, sau, uneori, nu apare deloc.
Imi scapa ceva?
Vlad
More information about the pso
mailing list