Initializes a device object, representing a physical, virtual, or logical device for which the driver is being loaded into the system, and allocates space for the driver-defined device extension associated with the device object. This routine also initializes a device object representing a logical or virtual device if the driver can reconfigure its devices dynamically, as, for example, when a disk is repartitioned dynamically.
Removes a device object from the system when a driver is being unloaded or when its logical or virtual devices are being reconfigured dynamically.
Returns a pointer to a device object with a given name if the caller's desired access to the object can be granted; also returns a pointer to the file object referenced by the named device object. In effect, this routine establishes a connection between the caller and the next-lower-level driver. A successful caller can use the returned device object pointer to initialize its own device object(s) and as an argument to IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest, IoAttachDeviceToDeviceStack, and IoCallDriver.
"Attaches" a given source device object (belonging to the caller) to a named target device object (usually belonging to the next-lower-level-driver), so that I/O requests bound for the target device are routed first to the caller.
"Attaches" the caller's device object to the highest device object in a chain of drivers and returns a pointer to the previously highest device object. I/O requests bound for the target device are routed first to the caller.
Releases an attachment between the caller's device object and a target driver's device object.
Sets up a symbolic link object, aliasing a named device object to a user-visible name for the same device.
IoCreateUnprotectedSymbolicLink
Sets up a symbolic link object, aliasing a named device object to a user-visible name for the same device and allowing user-mode callers to affect the mode of the device (for example, parallel and serial drivers call this routine so users can redirect output).
Releases a symbolic link between a device object name and a user-visible name.
Sets up a symbolic link between a named device object (such as a tape, floppy, or CD-ROM) and the corresponding ARC name for the device.
Releases the symbolic link created by calling IoAssignArcName.
Sets the access allowed to a given file object representing a device. (Only highest-level drivers can call this routine.)
Registers a driver's ISR), according to the parameters obtained by calling HalGetInterruptVector. Returns a pointer to a set of allocated, initialized, and connected interrupt objects that is used as an argument to KeSynchronizeExecution.
Releases a driver's interrupt object(s) when the driver unloads.
Returns a list of partitions on a disk with a given sector size.
Sets the partition type and number for a (disk) partition.
Writes partition tables for a disk, given the device object representing the disk, the sector size, and a pointer to a buffer containing the drive geometry.
Initializes a controller object, representing a physical device controller shared by two or more like devices with the same driver, and specifies the size of the controller extension.
Removes a controller object from the system.
Initializes a variable of type KSPIN_LOCK.
Initializes a DPC object, setting up a driver-supplied CustomDpc routine that can be called with a given context.
Initializes a notification timer object to the Not-Signaled state.
Initializes a notification or synchronization timer object to the Not-Signaled state.
Initializes an event object as a synchronization (single waiter) or notification (multiple waiters) type event and sets up its initial state (Signaled or Not-Signaled).
Initializes a fast mutex variable, used to synchronize mutually exclusive access to a shared resource by a set of threads.
Initializes a mutex object at a given level number as set to the Signaled state.
Initializes a semaphore object to a given count and specifies an upper bound the count can attain.
Initializes a named notification event to be used to synchronize access between two or more components. Notification events are not auto-resetting.
Initializes a named synchronization event to be used to serialize access to hardware between two otherwise unrelated drivers.
Creates a kernel-mode thread associated with a given process object or with the default system process; returns a handle for the thread.
Terminates the current thread and satisfies as many waits as possible for the current thread object.
Sets up the runtime priority, relative to the system process, for a driver-created thread.
Sets up the runtime priority for a driver-created thread with a real-time priority attribute.
Returns TRUE if the current platform is a server, indicating that more resources are likely to be necessary to process I/O requests than if the machine is a client.
Returns whether a small, medium, or large amount of memory is available on the current platform.
ExInitializeNPagedLookasideList
Initializes a lookaside list of nonpaged memory. After a successful initialization, fixed-size blocks can be allocated from and freed to the lookaside list.
ExInitializePagedLookasideList
Initializes a lookaside list of paged memory. After a successful initialization, fixed-size blocks can be allocated from and freed to the lookaside list.
Initializes a zone header for a caller-allocated zone from which fixed-size entries can be allocated and to which entries can be released.
Initializes a resource, for which the caller provides the storage, to be used for synchronization by a set of threads.
Reinitializes an existing resource variable.
Deletes a caller-initialized resource from the system's resource list.
Returns a pointer to the object body and handle information (attributes and granted access rights), given the handle for an object, the object's type, and a mask, specifying the desired access to the object, and the access mode (user or kernel, for which access is always granted). A successful call increments the reference count for the object.
Increments the reference count for a given object so the caller can ensure that the object is not removed from the system while the caller is using it.
Releases a reference to an object (decrements the reference count), given a pointer to the object body.
Sets up the specified string in a buffer.
Sets up the specified ANSI string in a buffer.
Sets up the specified Unicode string in a buffer.
Sets up a parameter of type OBJECT_ATTRIBUTES for a subsequent call to a ZwCreateXxx or ZwOpenXxx routine.
Creates a directory object with the specified object attributes and allowed access; returns a handle for the directory object.
Creates or opens a file object representing a physical, logical, or virtual device, a directory, a data file, or a volume; returns a handle for the file object.
Creates or opens a key object in the registry; returns a handle for the key object.
Deletes an existing, open key in the registry when the last handle for the key is closed.
Resets an opened object's "permanent" attribute, so that the object and its name can be deleted when the reference count for the object becomes zero.
Releases the handle for an opened object, causing the handle to become invalid and decrementing the reference count of the object handle.