阅读:1503回复:2
关于 IoCreateDevice 的一个指针问题
IoCreateDevice的声明为
NTSTATUS IoCreateDevice( IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName OPTIONAL, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject///////////此处为device——object的指针//////////////////////////////////// ); 使用时 NTSTATUS status; PDEVICE_OBJECT fdo;//////此处声明为指针,已经声明为指针了 UNICODE_STRING devName; RtlInitUnicodeString(&devName,L"\\Device\\MyWDMDevice"); status = IoCreateDevice( DriverObject, sizeof(DEVICE_EXTENSION), &(UNICODE_STRING)devName, FILE_DEVICE_UNKNOWN, 0, FALSE, &fdo);///////////////问题在这里,为什么是&fdo而不是fdo啊 小弟初学,希望给予指导啊 if( !NT_SUCCESS(status)) return status; |
|
沙发#
发布于:2009-06-06 14:22
typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
|
|
板凳#
发布于:2009-06-06 14:54
不好意思看错了 OUT PDEVICE_OBJECT *DeviceObject///////////此处为device——object的指针的指针////////////////////////////////////
|
|